#ifndef SUBESTADODEATAQUE_H_
#define SUBESTADODEATAQUE_H_

#include "Jugador.h"
#include "Territorio.h"
#include "Ataque.h"
#include "InvalidStateException.h"

class SubestadoDeAtaque
{
public:
	/* @throws InvalidStateException*/
	virtual void moverEjercitos(Jugador* jugador, Territorio* origen, Territorio* destino, unsigned int cantidadDeEjercitos);
	
	/* @throws InvalidStateException*/
	virtual void realizarAtaque(Ataque* ataque);
	
	/* @throws InvalidStateException*/
	virtual void tirarDados(Jugador* jugador, unsigned int cantidadDeDados);
	
	/* @throws InvalidStateException*/
	virtual void pasar(Jugador* jugador);
	
	virtual void decidirResultado();

};

#endif /*SUBESTADODEATAQUE_H_*/
